package com.geo.keyword.dto;

import java.util.List;

/**
 * 关键词分析请求DTO
 */
public class KeywordAnalysisRequest {
    
    /**
     * 关键词列表
     */
    private List<String> keywords;
    
    /**
     * 分析类型
     */
    private String analysisType;
    
    /**
     * 目标行业
     */
    private String industry;
    
    /**
     * 竞争对手信息
     */
    private List<String> competitors;
    
    /**
     * 用户ID（用于个性化分析）
     */
    private String userId;
    
    /**
     * 单个关键词文本（为了兼容性）
     */
    private String keywordText;
    
    /**
     * 业务信息
     */
    private String businessInfo;
    
    /**
     * 商户ID
     */
    private String merchantId;
    
    /**
     * 关键词ID
     */
    private String keywordId;
    
    // 构造函数
    public KeywordAnalysisRequest() {}
    
    public KeywordAnalysisRequest(List<String> keywords, String analysisType) {
        this.keywords = keywords;
        this.analysisType = analysisType;
    }
    
    // Getters and Setters
    public List<String> getKeywords() {
        return keywords;
    }
    
    public void setKeywords(List<String> keywords) {
        this.keywords = keywords;
    }
    
    public String getAnalysisType() {
        return analysisType;
    }
    
    public void setAnalysisType(String analysisType) {
        this.analysisType = analysisType;
    }
    
    public String getIndustry() {
        return industry;
    }
    
    public void setIndustry(String industry) {
        this.industry = industry;
    }
    
    public List<String> getCompetitors() {
        return competitors;
    }
    
    public void setCompetitors(List<String> competitors) {
        this.competitors = competitors;
    }
    
    public String getUserId() {
        return userId;
    }
    
    public void setUserId(String userId) {
        this.userId = userId;
    }
    
    public String getKeywordText() {
        return keywordText;
    }
    
    public void setKeywordText(String keywordText) {
        this.keywordText = keywordText;
    }
    
    public String getBusinessInfo() {
        return businessInfo;
    }
    
    public void setBusinessInfo(String businessInfo) {
        this.businessInfo = businessInfo;
    }
    
    public String getMerchantId() {
        return merchantId;
    }
    
    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }
    
    public String getKeywordId() {
        return keywordId;
    }
    
    public void setKeywordId(String keywordId) {
        this.keywordId = keywordId;
    }
    
    // Builder 模式
    public static Builder builder() {
        return new Builder();
    }
    
    public static class Builder {
        private KeywordAnalysisRequest request;
        
        public Builder() {
            this.request = new KeywordAnalysisRequest();
        }
        
        public Builder keywords(List<String> keywords) {
            request.setKeywords(keywords);
            return this;
        }
        
        public Builder analysisType(String analysisType) {
            request.setAnalysisType(analysisType);
            return this;
        }
        
        public Builder industry(String industry) {
            request.setIndustry(industry);
            return this;
        }
        
        public Builder competitors(List<String> competitors) {
            request.setCompetitors(competitors);
            return this;
        }
        
        public Builder userId(String userId) {
            request.setUserId(userId);
            return this;
        }
        
        public Builder keywordText(String keywordText) {
            request.setKeywordText(keywordText);
            return this;
        }
        
        public Builder businessInfo(String businessInfo) {
            request.setBusinessInfo(businessInfo);
            return this;
        }
        
        public Builder merchantId(String merchantId) {
            request.setMerchantId(merchantId);
            return this;
        }
        
        public Builder keywordId(String keywordId) {
            request.setKeywordId(keywordId);
            return this;
        }
        
        public KeywordAnalysisRequest build() {
            return request;
        }
    }
}